﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Framework.Common;
using Framework.Common.Exceptions;
using Framework.Common.Paged;
using Framework.Core;
using YouTravel.DomainModels;
using YouTravel.Framework.Enums;
using YouTravel.QueryModels;
using YouTravel.ViewModels;

namespace YouTravel.DomainService
{
    public interface IGatheringService
    {
        /// <summary>
        /// 申请提交收款
        /// </summary>
        /// <param name="gathering"></param>
        /// <param name="operateUserId"></param>
        void SubmitGathering(GatheringViewModel gathering, int operateUserId);

        /// <summary>
        /// 审核提交收款信息
        /// </summary>
        /// <param name="gathering"></param>
        /// <param name="operateUserId"></param>
        void AuditGathering(GatheringViewModel gathering, int operateUserId);

        /// <summary>
        /// 得到收款详细
        /// </summary>
        /// <param name="gatheringId"></param>
        /// <param name="operateUserId"></param>
        /// <returns></returns>
        GatheringViewModel GetModel(int gatheringId, int operateUserId);

        /// <summary>
        /// 得到发票列表
        /// </summary>
        /// <param name="queryCond"></param>
        /// <returns></returns>
        CustomPagedList<GatheringViewModel> GetList(PagedParam<GatheringQuery> queryCond);
    }
}
